home *** CD-ROM | disk | FTP | other *** search
/ Game Programming in C++ - Start to Finish / GameProgrammingS.iso / developer_install / CEGUISDK-0.4.1-VC6-STLport.exe / {app} / include / renderers / IrrlichtRenderer / irrlichttexture.h < prev    next >
C/C++ Source or Header  |  2005-02-16  |  4KB  |  131 lines

  1. /************************************************************************
  2.     filename:     irrlichttexture.h
  3.     created:    20/7/2004
  4.     author:        Thomas Suter
  5. *************************************************************************/
  6. /*************************************************************************
  7.     Crazy Eddie's GUI System (http://www.cegui.org.uk)
  8.     Copyright (C)2004 - 2005 Paul D Turner (paul@cegui.org.uk)
  9.  
  10.     This library is free software; you can redistribute it and/or
  11.     modify it under the terms of the GNU Lesser General Public
  12.     License as published by the Free Software Foundation; either
  13.     version 2.1 of the License, or (at your option) any later version.
  14.  
  15.     This library is distributed in the hope that it will be useful,
  16.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  17.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  18.     Lesser General Public License for more details.
  19.  
  20.     You should have received a copy of the GNU Lesser General Public
  21.     License along with this library; if not, write to the Free Software
  22.     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  23. *************************************************************************/
  24. #ifndef IRRLICHTTEXTURE_H_INCLUDED
  25. #define IRRLICHTTEXTURE_H_INCLUDED
  26.  
  27. #include "IrrlichtRendererDef.h"
  28.  
  29. #include "CEGUIBase.h"
  30. #include "CEGUIRenderer.h"
  31. #include "CEGUITexture.h"
  32.  
  33. #include <irrlicht.h>
  34.  
  35. namespace CEGUI
  36. {
  37.     class IRRLICHT_GUIRENDERER_API IrrlichtTexture : public Texture
  38.     {
  39.     public:
  40.  
  41.         // constructor
  42.         IrrlichtTexture(Renderer* r, irr::IrrlichtDevice* device);
  43.         
  44.         // destructor
  45.         virtual ~IrrlichtTexture();
  46.         
  47.         // returns the irrlich texture
  48.         irr::video::ITexture* getTexture();
  49.  
  50.         // set the irrlicht texture
  51.         void setTexture(irr::video::ITexture* texture);
  52.  
  53.  
  54.         /*!
  55.         \brief
  56.         Returns the current pixel width of the texture
  57.  
  58.         \return
  59.         ushort value that is the current width of the texture in pixels
  60.         */
  61.         virtual    ushort    getWidth(void) const;
  62.  
  63.  
  64.         /*!
  65.         \brief
  66.         Returns the current pixel height of the texture
  67.  
  68.         \return
  69.         ushort value that is the current height of the texture in pixels
  70.         */
  71.         virtual    ushort    getHeight(void) const;
  72.  
  73.  
  74.         /*!
  75.         \brief
  76.         Loads the specified image file into the texture.  The texture is resized as required to hold the image.
  77.  
  78.         \param filename
  79.         The filename of the image file that is to be loaded into the texture
  80.  
  81.         \param resourceGroup
  82.         Resource group identifier passed to the resource provider.
  83.  
  84.         \return
  85.         Nothing.
  86.         */
  87.         virtual void    loadFromFile(const String& filename, const String& resourceGroup);
  88.  
  89.  
  90.         /*!
  91.         \brief
  92.         Loads (copies) an image in memory into the texture.  The texture is resized as required to hold the image.
  93.  
  94.         \param buffPtr
  95.         Pointer to the buffer containing the image data
  96.  
  97.         \param buffWidth
  98.         Width of the buffer (in 0xAARRGGBB pixels)
  99.  
  100.         \param buffHeight
  101.         Height of the buffer (in 0xAARRGGBB pixels)
  102.  
  103.         \return
  104.         Nothing.
  105.         */
  106.         virtual void    loadFromMemory(const void* buffPtr, uint buffWidth, uint buffHeight);
  107.  
  108.     private:
  109.  
  110.         // counter for unique texture names
  111.         static int iTextureNumber;
  112.  
  113.         // generate a unique name
  114.         static irr::core::stringc getUniqueName(void);
  115.         
  116.         // remove the texture from irrlicht textures
  117.         void freeTexture();
  118.  
  119.         // the current texture for rendering
  120.         irr::video::ITexture* tex;
  121.  
  122.         // the irrlicht video driver 
  123.         irr::video::IVideoDriver* driver;
  124.  
  125.         // the irrlicht device
  126.         irr::IrrlichtDevice* device;
  127.  
  128.     };
  129. }
  130. #endif
  131.